package secondStage.part2.抽象类;

/**
 * @ClassName: [ChouXiangLei]
 * @Description: 抽象类
 * @Author: [黄劲松]
 * @CreateDate: [2021-03-14]
 * @Version: [v1.0]
 */
/*
1、抽象类概述
        在Java中，一个没有方法体的方法应该定义为抽象方法，
        而类中如果有抽象方法，该类必须定义为抽象类
        关键字：abstract
2、抽象类的特点
    ●抽象类和抽象方法必须使用 abstract关键字修饰
        public abstract class类名（）；
        public abstract void eat（）；
    ●抽象类中不一 定有抽象方法,有抽象方法的类一定是抽象类
    ●抽象类不能实例化
        抽象类如何实例化呢?参照多态的方式，通过子类对象实例化，这叫抽象类多态
    ●抽象类的子类
        要么重写抽象类中的所有抽象方法
        要么是抽象类
3、抽象类的成员特点
    ●成员变量 .
        可以是变量
        也可以是常量
    ●构造方法 .
        有构造方法，但是不能实例化
        那么，构造方法的作用是什么呢?用于子类访问父类数据的初始化
    ●成员方法 .
        可以有抽象方法:限定子类必须完成某些动作
        也可以有非抽象方法:提高代码复用性
*/

/*抽象类名作为形参和返回值特点：
    方法的形参是抽象类名，其实需要的是该抽象类的子类对象
    方法的返回值是抽象类名，其实返回的是该抽象类的子类对象*/
public class ChouXiangLei {
}
